使用金仓 KINGBASE数据库
⚠数据库选型建议
PIGX 官方目前主推 MySQL 8 和 达梦国产化数据库,建议优先在这两种数据库上跑通基础功能后,再探索使用其他类型的数据库。
本章节依赖金仓的 postgresql模式
环境说明
| 依赖 | 版本 |
|---|
| 数据库 | kingbase_v009r001c010b0004_single_x86 |
| PIGX | 5.10 |
| 架构模式 | 微服务 |
| 数据库同步工具 | dbswitch 1.9.8 |
安装金仓数据库
将下载的镜像 KingbaseES_V009R001C010B0004_x86_64_Docker.tar 进行加载到 docker
docker load -i KingbaseES_V009R001C010B0004_x86_64_Docker.tar
docker run -tid --privileged \
-p 54321:54321 \
-v /opt/kingbase/data:/home/kingbase/userdata/ \
--restart=always \
-e NEED_START=yes \
-e DB_USER=kingbase \
-e DB_PASSWORD=123456 \
-e DB_MODE=pg \
--name kingbase \
kingbase_v009r001c010b0004_single_x86:v1 /usr/sbin/init
① nacos 链接金仓
💡单体架构可跳过
此步骤较为复杂:由于 Nacos 仅支持 MySQL,需要额外插件。如果使用单体架构且无需 Nacos,可直接跳过。
点击下载 nacos 人大金仓的数据库脚本
pigx-register 链接
<dependency>
<groupId>com.sinhy</groupId>
<artifactId>nacos-postgresql-datasource-plugin-ext</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
- pigx-register/application.properties
spring.sql.init.platform=postgresql
db.num=1
db.url.0=jdbc:postgresql://127.0.0.1:54321/nacos
db.user=kingbase
db.password=123456
db.pool.config.driver-class-name=org.postgresql.Driver
② 同步 MySQL 最新脚本获取对应的金仓脚本
安装同步工具
docker run -d --name dbswitch -e DBTYPE=h2 -p 9088:9088 \
registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest
在浏览器中访问:http://localhost:9088,默认账号密码:admin/123456
创建同步任务
common-sequence 修改
- 在
pigx-common-sequence/pom.xml 中增加金仓驱动:
<dependency>
<groupId>org.anyline</groupId>
<artifactId>anyline-data-jdbc-kingbase</artifactId>
<version>8.7.2-jdk17-20250109</version>
</dependency>
修改各模块数据库链接信息
<dependency>
<groupId>cn.com.kingbase</groupId>
<artifactId>kingbase8</artifactId>
<version>9.0.1</version>
</dependency>
driver-class-name: com.kingbase8.Driver
username: kingbase
password: 123456
# 注意 currentSchema=public,sys_catalog 必须这么写
url: jdbc:kingbase8://47.96.66.43:54321/pigai?currentSchema=public,sys_catalog
Quartz 模块调整
⚠任务调度兼容性
XXL 不支持 mysql 以外数据源,请使用 PIGX 内置的 Quartz 任务调度
-
表同步注意事项:数据库同步时不要同步 qrtz_* 开头的 Quartz 相关表
-
配置文件调整
- 修改
quartz-config.yml 中的 initialize-schema: always
- 首次启动时系统会自动创建所需的 Quartz 表结构,后续修改为 never
-
驱动委托类配置, 将 driverDelegateClass 调整为 PostgreSQL 专用委托类:
driverDelegateClass: org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
Flow 工作流模块
关闭 flowable 自动创建表
# 增加如下属性
flowable:
database-schema-update: none
手动执行 flowable 金仓脚本
flowable.金仓创建脚本.all.create
AbstractEngineConfiguration 设置金仓方言
